home *** CD-ROM | disk | FTP | other *** search
- MANIP(3C) Last changed: 1-7-99
-
-
- NNAAMMEE
- mmaanniippuullaattoorrss - iostream out-of-band manipulations
-
- SSYYNNOOPPSSIISS
- ##iinncclluuddee <<iioossttrreeaamm..hh>>
- ##iinncclluuddee <<iioommaanniipp..hh>>
-
- IIOOMMAANNIIPPddeeccllaarree((TT)) ;;
-
- ccllaassss SSMMAANNIIPP((TT)) {{
- SSMMAANNIIPP((TT))(( iiooss&& ((**))((iiooss&&,,TT)),, TT));;
- ffrriieenndd iissttrreeaamm&& ooppeerraattoorr>>>>((iissttrreeaamm&&,, SSMMAANNIIPP((TT))&&));;
- ffrriieenndd oossttrreeaamm&& ooppeerraattoorr<<<<((oossttrreeaamm&&,, SSMMAANNIIPP((TT))&&));;
- }};;
- ccllaassss SSAAPPPP((TT)) {{
- SSAAPPPP((TT))(( iiooss&& ((**))((iiooss&&,,TT))));;
- SSMMAANNIIPP((TT)) ooppeerraattoorr(())((TT));;
- }};;
- ccllaassss IIMMAANNIIPP((TT)) {{
- IIMMAANNIIPP((TT))(( iissttrreeaamm&& ((**))((iissttrreeaamm&&,,TT)),, TT));;
- ffrriieenndd iissttrreeaamm&& ooppeerraattoorr>>>>((iissttrreeaamm&&,, IIMMAANNIIPP((TT))&&));;
- }};;
- ccllaassss IIAAPPPP((TT)) {{
- IIAAPPPP((TT))(( iissttrreeaamm&& ((**))((iissttrreeaamm&&,,TT))));;
- IIMMAANNIIPP((TT)) ooppeerraattoorr(())((TT));;
- }};;
- ccllaassss OOMMAANNIIPP((TT)) {{
- OOMMAANNIIPP((TT))(( oossttrreeaamm&& ((**))((oossttrreeaamm&&,,TT)),, TT));;
- ffrriieenndd oossttrreeaamm&& ooppeerraattoorr<<<<((oossttrreeaamm&&,, OOMMAANNIIPP((TT))&&));;
- }};;
- ccllaassss OOAAPPPP((TT)) {{
- OOAAPPPP((TT))(( oossttrreeaamm&& ((**))((oossttrreeaamm&&,,TT))));;
- OOMMAANNIIPP((TT)) ooppeerraattoorr(())((TT));;
- }};;
- ccllaassss IIOOMMAANNIIPP((TT)) {{
- IIOOMMAANNIIPP((TT))(( iioossttrreeaamm&& ((**))((iioossttrreeaamm&&,,TT)),, TT));;
- ffrriieenndd iissttrreeaamm&& ooppeerraattoorr>>>>((iioossttrreeaamm&&,, IIOOMMAANNIIPP((TT))&&));;
- ffrriieenndd oossttrreeaamm&& ooppeerraattoorr<<<<((iioossttrreeaamm&&,, IIOOMMAANNIIPP((TT))&&));;
- }};;
- ccllaassss IIOOAAPPPP((TT)) {{
- IIOOAAPPPP((TT))(( iioossttrreeaamm&& ((**))((iioossttrreeaamm&&,,TT))));;
- IIOOMMAANNIIPP((TT)) ooppeerraattoorr(())((TT));;
- }};;
-
- IIOOMMAANNIIPPddeeccllaarree((iinntt));;
- IIOOMMAANNIIPPddeeccllaarree((lloonngg));;
-
- SSMMAANNIIPP((lloonngg)) rreesseettiioossffllaaggss((lloonngg));;
- SSMMAANNIIPP((iinntt)) sseettffiillll((iinntt));;
- SSMMAANNIIPP((lloonngg)) sseettiioossffllaaggss((lloonngg));;
- SSMMAANNIIPP((iinntt)) sseettpprreecciissiioonn((iinntt));;
- SSMMAANNIIPP((iinntt)) sseettww((iinntt ww));;
-
- IIMMPPLLEEMMEENNTTAATTIIOONN
- IRIX systems
-
- DDEESSCCRRIIPPTTIIOONN
- Manipulators are values that may be inserted into or extracted from
- streams to achieve some effect (other than to insert or extract a
- value representation) with a convenient syntax. They enable you to
- embed a function call into an expression containing a series of
- insertions or extractions. For example, the predefined manipulator
- for oossttrreeaamms, fflluusshh, can be used to flush ccoouutt as follows:
- ccoouutt <<<< fflluusshh
-
- Several iostream classes supply manipulators: see _i_o_s(_3_C),
- _i_s_t_r_e_a_m(_3_C), and _o_s_t_r_e_a_m(_3_C). fflluusshh is a simple manipulator; some
- manipulators take arguments, such as the predefined iiooss manipulators,
- sseettffiillll and sseettww (see below). The header file iioommaanniipp..hh supplies
- macro definitions which programmers can use to define new
- parameterized manipulators.
-
- Ideally, the types relating to manipulators would be parameterized as
- templates. The macros defined in iioommaanniipp..hh are used to simulate
- templates. IIOOMMAANNIIPPddeeccllaarree((TT)) declares the various classes and
- operators. (All code is declared inline so that no separate
- definitions are required.) The other TTs are used to construct the
- real names; therefore, each must be a single identifier. Each of the
- other macros also requires an identifier and expands to a name.
-
- In the following descriptions, assume the following:
-
- * tt is a TT, or type name.
-
- * ss is an iiooss.
-
- * ii is an iissttrreeaamm.
-
- * oo is an oossttrreeaamm.
-
- * iioo is an iioossttrreeaamm.
-
- * ff is an iiooss&& ((**))((iiooss&&)).
-
- * iiff is an iissttrreeaamm&& ((**))((iissttrreeaamm&&)).
-
- * ooff is an oossttrreeaamm&& ((**))((oossttrreeaamm&&)).
-
- * iiooff is an iioossttrreeaamm&& ((**))((iioossttrreeaamm&&)).
-
- * nn is an iinntt.
-
- * ll is a lloonngg.
-
- ss<<<<SSMMAANNIIPP((TT))((ff,,tt))
- ss>>>>SSMMAANNIIPP((TT))((ff,,tt))
- ss<<<<SSAAPPPP((TT))((ff))((tt))
- ss>>>>SSAAPPPP((TT))((ff))((tt))
- Returns ff((ss,,tt)), where ss is the left operand of the insertion or
- extractor operator (i.e., ss, ii, oo, or iioo).
-
- ii>>>>IIMMAANNIIPP((TT))((iiff,,tt))
- ii>>>>IIAAPPPP((TT))((iiff))((tt))
- Returns iiff((ii,,tt)).
-
- oo<<<<OOMMAANNIIPP((TT))((ooff,,tt))
- oo<<<<OOAAPPPP((TT))((ooff))((tt))
- Returns ooff((oo,,tt)).
-
- iioo<<<<IIOOMMAANNIIPP((TT))((iiooff,,tt))
- iioo>>>>IIOOMMAANNIIPP((TT))((iiooff,,tt))
- iioo<<<<IIOOAAPPPP((TT))((iiooff))((tt))
- iioo>>>>IIOOAAPPPP((TT))((iiooff))((tt))
- Returns iiooff((iioo,,tt)).
-
- iioommaanniipp..hh contains two declarations, IIOOMMAANNIIPPddeeccllaarree((iinntt)) and
- IIOOMMAANNIIPPddeeccllaarree((lloonngg)), and some manipulators that take an iinntt or a
- lloonngg argument. These manipulators all have to do with changing
- the format state of a stream; see _i_o_s(_3_C) for details.
-
- oo<<<<sseettww((nn))
- ii>>>>sseettww((nn))
- Sets the field width of the stream (left-hand operand: oo or ii) to
- nn.
-
- oo<<<<sseettffiillll((nn))
- ii>>>>sseettffiillll((nn))
- Sets the fill character of the stream (oo or ii, or) to be nn.
-
- oo<<<<sseettpprreecciissiioonn((nn))
- ii>>>>sseettpprreecciissiioonn((nn))
- Sets the precision of the stream (oo or ii) to be nn.
-
- oo<<<<sseettiioossffllaaggss((ll))
- ii>>>>sseettiioossffllaaggss((ll))
- Turns on in the stream (oo or ii) the format flags marked in ll.
- (Calls oo..sseettff((ll)) or ii..sseettff((ll))).
-
- oo<<<<rreesseettiioossffllaaggss((ll))
- ii>>>>rreesseettiioossffllaaggss((ll))
- Clears in the stream (oo or ii) the format bits specified by ll.
- (Calls oo..sseettff((00,,ll)) or ii..sseettff((00,,ll))).
-
- NNOOTTEESS
- Syntax errors will be reported if IIOOMMAANNIIPPddeeccllaarree((TT)) occurs more than
- once in a file with the same TT.
-
- SSEEEE AALLSSOO
- iiooss(3C), iissttrreeaamm(3C), oossttrreeaamm(3C)
-
- This man page is available only online.
-